100 REM* IMPROVED 1541 HEAD CLEANING PRG * 110 PRINT"[147]INSERT CLEANING DISK AND HIT RETURN" 120 GETA$:IFA$<>CHR$(13)THEN120 130 OPEN 15,8,15:PRINT#15,"M-E"CHR$(126)CHR$(249) 140 REM LOCATE HEAD 150 PRINT#15,"M-R"CHR$(24)CHR$(0) 160 GET#15,A$:X=ASC(A$+CHR$(0)) 165 IF X=0 THEN END 170 PRINT"DRIVE HEAD AT TRACK #"X 180 REM READ $1C00 190 PRINT#15,"M-R"CHR$(0)CHR$(28) 200 GET#15,SC$:SC=ASC(SC$+CHR$(0)) 210 REM SELECT BITS 0 AND 1 220 BT=SC AND 3 230 REM # TRACKS TO 1 240 SP=2*(X-1) 250 REM MOVE HEAD TO TRACK 1 260 PRINT"STEPPING TO TRACK #1" 270 FOR Y=1 TO SP 280 BT=BT-1:BT=BT AND 3 290 S=(SC AND 252)OR BT 300 PRINT#15,"M-W"CHR$(0)CHR$(28)CHR$(1)CHR$(S) 310 NEXT Y 320 REM STEP OUT TO 35 330 PRINT"STEPPING OUT TO TRACK # 35..." 340 PRINT#15,"M-R"CHR$(0)CHR$(28) 350 GET#15,A$:SC=ASC(A$+CHR$(0)) 360 BT=SC AND 3 370 FOR Y=1 TO 68 380 PRINT"TRACK #"INT(Y/2+1) 390 PRINT"[145][145][145][145]" 400 BT=BT+1: BT=BT AND 3 410 S=(SC AND 252) OR BT 420 PRINT#15,"M-W"CHR$(0)CHR$(28)CHR$(1)CHR$(S) 430 FORD=1TO220:NEXTD 440 NEXT Y 450 PRINT#15,"M-E"CHR$(232)CHR$(249):CLOSE15 460 NEW: REM TO PREVENT RE-RUNNING WITHOUT A NORMAL DISK OPERATION FIRST